One goal of a communication system may be to transport information from one physical location to another. In some electronic communication systems, the communication itself takes place between electronic components. For example, these electronic components may be integrated circuits (“ICs”) and this communication setting may be referred to as “chip-to-chip communication.” The communicating electronic components might be located in the same apparatus, such as the communication between a central processing unit (“CPU”) and memory inside a computer, tablet computing device, or other mobile device. Another example is the communication between two CPU cores that are integrated on the same chip. Yet another example is the communication between a Graphics Processing Unit (“GPU”) and memory on a graphics card. In these cases, the actual communication can take place over wires on a printed circuit board (“PCB”) and/or metal wires integrated in a chip and these wires carry electrical signals. It should be apparent upon reading this disclosure that other possibilities exist. The communication may, for instance, take place wirelessly or over an optical fiber.
In some cases, communication takes place between components that are located in different apparatuses. An example of this situation is a digital photo camera that is connected to a computer. In this setting, the communication can take place over a physical cable or wirelessly. Another example is a set of computers that are connected to a network. The electronic components on the network card of each computer may communicate with the electronic components of another network card of yet another computer.
In such communication settings, a goal may be to transmit digital information from one electronic component to another in a reliable and efficient way. The efficiency of the communication can be expressed in terms of the time it takes to transfer certain amount of information (speed), the energy that is required to transmit the information reliably (power consumption) and the number of wires per bit that is required for communication (pin-efficiency). Typically, several trade-offs exist between these parameters and, depending on the application, some of these parameters may be more important than others. One example is the communication between a CPU and a memory in a mobile device. A battery powers the mobile device and the power consumption of the communication between the CPU and memory can have a significant impact on the battery life. The desired trade-off may even change when the mobile device is connected to a non-portable power supply.
In some chip-to-chip communication systems communication takes place over a plurality of wires, for example, to increase the aggregate bandwidth. A single or pair of such wires may be referred to as a channel or link and multiple channels create a communication bus between the electronic components.
A difficulty in designing high speed, low power and pin-efficient chip-to-chip communication systems lies in part in the fact that the communication channel is not perfect. For example, the physical wires may disturb the signals transmitted on them and noise and interference may be added to the transmitted signals. As another example, the electronic components used to implement the communication system are not perfect and this can disturb the signals used for communication.
There can be multiple sources of noise in chip-to-chip communication systems. For example, there may be noise and interference that is common to a set of wires. This type of noise and interference is called common-mode noise. As another example, there may be thermal noise that is induced in electrical conductors. Thermal noise may be modeled as Gaussian noise that is added to each conductor independently. As yet another example, there may be simultaneous switching output (“SSO”) noise that is caused by a time-varying current in the electronics that drive the wires. As still another example, the signals transmitted on different wires may interfere with one other, which can cause crosstalk and significantly degrade signal integrity, especially at high speeds. As still yet another example, for some signaling methods an absolute voltage or current reference is required at the receiver. Such references are difficult to maintain with great precision and errors in the reference may cause unwanted distortions and noise.
Conventional attempts to combat the various types of noise while optimizing pin-efficiency and power consumption are inefficient, ineffective and/or have undesirable side effects or other drawbacks with respect to at least one significant use case.
Embodiments of the invention are directed toward solving these and other problems individually and collectively.